package xuanke;

public class Teacher extends Person {
    // 子类新增属性：所授课程
    private Course taughtCourse;

    // 子类构造方法，调用父类构造
    public Teacher(String id, String name, String gender) {
        super(id, name, gender); // 调用父类构造方法
    }

    // 开课方法
    public void offerCourse(Course course) {
        this.taughtCourse = course;
        course.setTeacher(this); // 课程关联教师
        System.out.println(name + " 已开设课程：" + course.getCourseName());
    }

    // 重写父类方法：打印教师课表（所授课程）
    @Override
    public void printInfo() {
        super.printInfo(); // 调用父类打印个人信息的方法
        if (taughtCourse != null) {
            System.out.println("=== 教师授课 ===");
            System.out.println("课程编号：" + taughtCourse.getCourseId() + "，课程名称：" + taughtCourse.getCourseName() + 
                               "，上课地点：" + taughtCourse.getLocation() + "，时间：" + taughtCourse.getTime());
        } else {
            System.out.println("暂无授课课程");
        }
    }

    // Getter方法（用于Course类关联教师）
    public String getName() {
        return name;
    }

    // Getter方法（用于外部访问所授课程）
    public Course getTaughtCourse() {
        return taughtCourse;
    }
}